Lịch sử Mã_spaghetti

Người ta không rõ rằng từ khi nào mà cụm từ mã spaghetti được sử dụng phổ biến; tuy nhiên, một số tài liệu tham khảo xuất hiện vào năm 1977 bao gồm Macaroni is Better Than Spaghetti bởi Steele được xuất bản trong 'Biên bản lưu' của hội nghị chuyên đề năm 1977 về trí năng nhân tạo và ngôn ngữ lập trình. Trong cuốn sách năm 1978 A primer on disciplined programming using PL/I, PL/CS, and PL/CT, Richard Conway đã sử dụng thuật ngữ này để mô tả các kiểu chương trình rằng "có cùng cấu trúc sạch có tính logic giống như một đĩa mì spaghetti",[7] một cụm từ được lặp đi lặp lại trong cuốn sách năm 1979 An Introduction to Programming mà ông là đồng tác giả với David Gries (en).[8] Trong bài báo khoa học năm 1988 A spiral model of software development and enhancement, thuật ngữ này được sử dụng để mô tả sự thực hành trước đây của mô hình mã và sửa lỗi (code and fix model) – nói về sự thiếu việc kế hoạch của nó, và cuối cùng đã dẫn đến sự phát triển của mô hình thác nước.[9] Trong cuốn sách năm 1979 Structured programming for the COBOL programmer, tác giả Paul Noll sử dụng các cụm từ mã spaghetti và tổ của chuột làm các từ đồng nghĩa để mô tả mã nguồn có cấu trúc kém.[10]

Trong hội nghị Ada – Europe '93, ngôn ngữ Ada đã được mô tả là nó ép lập trình viên phải "tạo ra mã code dễ hiểu, thay vì mã spaghetti", vì cơ chế lan truyền ngoại lệ (exception) mang tính hạn chế của nó.

Vào năm 1981 trong một bài viết biếm nhại các ngôn ngữ máy tính trong sách The Technic Michigan có tiêu đề "BASICally speaking...FORTRAN bytes!!", tác giả đã mô tả FORTRAN là "bằng chứng rành rành rằng các nhà đồng sáng lập của IBM là người Ý, vì nó toàn là từ mã spaghetti mà ra cả".[11]

Tài liệu tham khảo

WikiPedia: Mã_spaghetti http://www.fortran.com/fortran/come_from.html http://horstmann.com/bigjava3.html http://itestra.com/wp-content/uploads/2017/08/04_i... http://spaghetticodebook.com http://whatis.techtarget.com/definition/Pasta-Theo... http://yost.com/computers/java/java-spaghetti/ //citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1... //citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1... http://portal.acm.org/citation.cfm?id=362929.36294... //doi.org/10.1007%2F3-540-54059-8_104